(VAR X Y) (STRATEGY CONTEXTSENSITIVE (fact 1) (if 1) (zero 1) (s 1) (0) (prod 1 2) (p 1) (add 1 2) (true) (false) ) (RULES fact(X) -> if(zero(X),s(0),prod(X,fact(p(X)))) add(0,X) -> X add(s(X),Y) -> s(add(X,Y)) prod(0,X) -> 0 prod(s(X),Y) -> add(Y,prod(X,Y)) if(true,X,Y) -> X if(false,X,Y) -> Y zero(0) -> true zero(s(X)) -> false p(s(X)) -> X )